home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / dev / c / qtools0.2-src.lha / src / libqsys / TDCS.h < prev   
Encoding:
C/C++ Source or Header  |  1998-09-09  |  2.6 KB  |  81 lines

  1. #define    NOERROR            1
  2. #define    ERROR            0
  3. #define    ERROR_NOTCRUNCHED    XPKERR_WRONGFORM
  4. #define    ERROR_LESSMEM        XPKERR_NOMEM
  5. #define    ERROR_OVERFLOW        XPKERR_EXPANSION
  6.  
  7. #ifndef    BITSPERBYTE
  8. #define    BITSPERBYTE    8
  9. #endif
  10. #ifndef    BITSPERINT
  11. #define    BITSPERINT    32
  12. #endif
  13.  
  14. #define    INDEX_BITS    2
  15. #define    INDEX_MASK    ((1 << INDEX_BITS) - 1)
  16. #define    INDEX_LENGTH    (BITSPERINT / INDEX_BITS)
  17.  
  18. #define    HISTORY_BITS    16
  19. #define    HISTORY_MASK    ((1 << HISTORY_BITS) - 1)
  20. #define    HISTORY_LENGTH    HISTORY_MASK
  21.  
  22. #define    MATCHLEN_BITS    8
  23. #define    MATCHLEN_MASK    ((1 << MATCHLEN_BITS) - 1)
  24. #define    MATCHLEN_LENGTH    MATCHLEN_MASK
  25.  
  26. #define    LITERAL_BITS    8
  27. #define    LITERAL_MASK    ((1 << LITERAL_BITS) - 1)
  28. #define    LITERAL_LENGTH    LITERAL_MASK
  29.  
  30. #define    MIN_MATCH    ((HISTORY_BITS + MATCHLEN_BITS) / BITSPERBYTE)
  31. #define    MAX_MATCH    (MATCHLEN_LENGTH + MIN_MATCH)
  32.  
  33. #define    MAX_REVIEW    3                    /* sizes grow if more than 3 */
  34.  
  35. #define    LOOKUP_BITS    16
  36. #define    LOOKUP_SIZE    (1 << LOOKUP_BITS)
  37. #define    LOOKUP_MASK    (LOOKUP_SIZE - 1)
  38. #define    LOOKUP_LENGTH    LOOKUP_MASK
  39. #if 0
  40. #define    LOOKUP_PREFUNCTION(address) \
  41.             ((*((unsigned char *)     ((address) + 0)) << 8) ^ \
  42.              (*((unsigned short int *)((address) + 0 + sizeof(unsigned char)))))
  43. #define    LOOKUP_POSTFUNCTION(address, index) \
  44.             ((*((unsigned char *)     ((address) + index)) << 8) ^ \
  45.              (*((unsigned short int *)((address) + index + sizeof(unsigned char)))))
  46. #else
  47. #define    LOOKUP_PREFUNCTION(address) \
  48.             ((*((unsigned short int *)((address) + 0))) ^ \
  49.              (*((unsigned char *)     ((address) + 0 + sizeof(unsigned short int)))))
  50. #define    LOOKUP_POSTFUNCTION(address, index) \
  51.             ((*((unsigned short int *)((address) + index))) ^ \
  52.              (*((unsigned char *)     ((address) + index + sizeof(unsigned short int)))))
  53. #endif
  54.  
  55. #define    NODES_CLUSTER    64
  56. #define    NODES_MIN    2
  57. #define    NODES_BACKWALL    1
  58. #define    NODES_SIZE(num)    (((num + NODES_BACKWALL) * sizeof(unsigned char *)) + sizeof(struct hashnode))
  59.  
  60. //#define    RESIZED_HISTORY                    /* does not work, I don't know who to convert my asm to c */
  61.  
  62. struct hashnode {
  63.   int count;                            /* number of valid hashentries */
  64.   unsigned char *entries[0];                    /* the entries */
  65. };
  66.  
  67. struct hashroot {
  68.   int maxcount;                            /* maximum number of hashentries */
  69.   struct hashnode *node;                    /* the node */
  70. };
  71.  
  72. int annihilate(register int inSize __asm__ ("d0"),
  73.            register unsigned char *inMem __asm__ ("a0"),
  74.            register int outSize __asm__ ("d1"),
  75.            register unsigned char *outMem __asm__ ("a1"),
  76.            int Mode);
  77. int reanimate(register int inSize __asm__ ("d1"),
  78.           register unsigned char *inMem __asm__ ("a0"),
  79.           register int outSize __asm__ ("d0"),
  80.           register unsigned char *outMem __asm__ ("a1"));
  81.